Compiler Assisted Speculation for Multithreaded Programming

نویسندگان

  • Lingxiang Xiang
  • Michael L. Scott
چکیده

Multithreaded programming, which well fits the structure of modern shared memory systems, is becoming one of the most popular parallel programming models. Two important supporting components of multithreaded programming, concurrent data structures and transactional memory, can benefit from speculation. However, traditional speculation mechanisms, which do not exploit high level knowledge about the program, are inefficient in concurrent data structures and transactional memory systems. In this proposal, we bridge the gap between the high-level program knowledge and the speculation in multithreaded programming with the compiler’s assistance. We propose a language extension to incorporate fast speculation into concurrent data structure design, and show how the language extension helps the speculation in newly emerged HTM processors. Besides, in order to improve the speculation in transaction memory systems under the circumstance with data high contention, two compiler optimization techniques are also proposed for STM and HTM, respectively.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Control Speculation in Multithreaded Processors through Dynamic Loop Detection

This paper presents a mechanism to dynamically detect the loops that are executed in a program. This technique detects the beginning and the termination of the iterations and executions of the loops without compiler/user intervention. We propose to apply this dynamic loop detection to the speculation of multiple threads of control dynamically obtained from a sequential program. Based on the hig...

متن کامل

JIT-Compiler-Assisted Distributed Java Virtual Machine

There is now a strong interest in high-performance execution of multithreaded Java programs in a cluster. Previous efforts to provide for such executions have either used static compilation tools that can transform multithreaded Java programs into parallel versions, or interpreter-based cluster-aware JVMs that offer the needed support. They failed however to be fully compliant with the Java lan...

متن کامل

Utilising parallel resources by speculation

This paper introduces Simultaneous Speculation Scheduling, a new compiler technique that enables speculative execution of alternative program paths. In our approach concurrently executed threads are generated that represent alternative program paths. Each thread is the result of a speculation on the outcome of one or more branches. All threads are simultaneously executed although only one of th...

متن کامل

The Superthreaded Processor Architecture

The common single-threaded execution model limits processors to exploiting only the relatively small amount of instruction-level parallelism available in application programs. The superthreaded processor, on the other hand, is a concurrent multithreaded architecture (CMA) that can exploit the multiple granularities of parallelism available in general-purpose application programs. Unlike other C...

متن کامل

Designing the Agassiz Compiler for Concurrent Multithreaded Architectures

In this paper, we present the overall design of the Agassiz compiler [1]. The Agassiz compiler is an integrated compiler targeting the concurrent multithreaded architectures [12][13]. These architectures can exploit both loop-level and instruction-level parallelism for general-purpose applications (such as those in SPEC benchmarks). They also support various kinds of control and data speculatio...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2013